Урок 1.4: Базовые типы данных
В реляционных базах данных типы данных определяют, какие данные могут храниться в столбце. Выбор правильного типа данных имеет решающее значение для целостности данных, эффективности хранения и производительности запросов. В этом уроке рассматриваются общие типы данных и их подтипы, используемые в реляционных базах данных, а также диапазоны их значений.

Числовые типы данных
Числовые типы данных используются для хранения числовых значений.
INTEGER
- Хранит целые числа.
- Подтипы:
INT или INTEGER: Обычно 4-байтовое целое число.
SMALLINT: Обычно 2-байтовое целое число.
BIGINT: Обычно 8-байтовое целое число.
TINYINT: Обычно 1-байтовое целое число.
- Диапазоны (приблизительные, могут различаться в зависимости от системы управления базами данных):
TINYINT: от -128 до 127 (со знаком) или от 0 до 255 (без знака)
SMALLINT: от -32 768 до 32 767
INT: от -2 147 483 648 до 2 147 483 647
BIGINT: от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
DECIMAL / NUMERIC
- Хранит точные числовые значения с указанной точностью и масштабом.
- Точность: Общее количество цифр.
- Масштаб: Количество цифр справа от десятичной точки.
- Пример:
DECIMAL(10, 2) может хранить числа с 10 общими цифрами, 2 из которых находятся после десятичной точки.
- Диапазон: Зависит от точности и масштаба.
FLOAT / REAL
- Хранит приблизительные числовые значения с плавающей точкой.
- Подтипы:
FLOAT: Число с плавающей точкой одинарной точности.
DOUBLE / DOUBLE PRECISION: Число с плавающей точкой двойной точности.
REAL: Синоним для FLOAT в некоторых базах данных.
- Диапазон: Варьируется в зависимости от конкретной реализации, но обычно охватывает широкий диапазон значений с ограниченной точностью.
Символьные / Строковые типы данных
Символьные типы данных используются для хранения текста.
CHAR
- Хранит строки фиксированной длины.
- Вы указываете длину при определении столбца.
- Пример:
CHAR(10) хранит строки ровно из 10 символов.
- Если хранимая строка короче указанной длины, она дополняется пробелами.
VARCHAR
- Хранит строки переменной длины.
- Вы указываете максимальную длину при определении столбца.
- Пример:
VARCHAR(255) хранит строки длиной до 255 символов.
- Использует только пространство, необходимое для хранения фактической строки.
TEXT
- Хранит большие строки переменной длины.
- Часто используется для хранения документов, статей или других больших текстовых данных.
- Максимальная длина обычно намного больше, чем у
VARCHAR.
Типы данных даты и времени
Типы данных даты и времени используются для хранения временных значений.
DATE
- Хранит дату (год, месяц, день).
- Формат: Варьируется в зависимости от системы управления базами данных (например, ГГГГ-ММ-ДД, ММ/ДД/ГГГГ).
TIME
- Хранит время (час, минута, секунда).
- Формат: Варьируется в зависимости от системы управления базами данных (например, ЧЧ:ММ:СС).
DATETIME / TIMESTAMP
- Хранит как дату, так и время.
- Формат: Варьируется в зависимости от системы управления базами данных (например, ГГГГ-ММ-ДД ЧЧ:ММ:СС).
TIMESTAMP часто имеет особое поведение, связанное с часовыми поясами и автоматическим обновлением.
Логический тип данных
BOOLEAN
- Хранит значения true/false.
- Некоторые базы данных могут представлять логические значения как целые числа (например, 0 для false, 1 для true).
Другие типы данных
BLOB (Binary Large Object)
- Хранит двоичные данные, такие как изображения, аудио- или видеофайлы.
JSON
- Хранит данные в формате JSON (JavaScript Object Notation).
- Позволяет хранить полуструктурированные данные в столбце базы данных.
Выбор правильного типа данных
- Учитывайте тип данных, которые вам нужно хранить (числовые, текстовые, дата/время и т. д.).
- Выбирайте наименьший тип данных, который может вместить диапазон значений, которые вы ожидаете.
- Используйте
VARCHAR вместо CHAR, если вам не нужны строки фиксированной длины.
- Используйте
DECIMAL для точных числовых значений, особенно при работе с валютой.
- Помните о конкретных типах данных и их поведении в вашей системе управления базами данных.
Понимая доступные типы данных и их характеристики, вы можете проектировать базы данных, которые будут эффективными, надежными и простыми в обслуживании.
Основные выводы из этого урока:
- Типы данных имеют значение: Выбор подходящего типа данных имеет решающее значение для целостности данных, эффективности хранения и производительности запросов.
- Числовые типы:
INTEGER, DECIMAL и FLOAT используются для хранения числовых данных, каждый со своими характеристиками в отношении точности и диапазона.
- Строковые типы:
CHAR, VARCHAR и TEXT используются для хранения текстовых данных с различными ограничениями по длине и последствиями для хранения.
- Типы даты/времени:
DATE, TIME и DATETIME используются для хранения временных данных с определенными форматами, которые различаются в разных системах баз данных.
- Другие типы:
BOOLEAN, BLOB и JSON обеспечивают поддержку хранения логических значений, двоичных данных и полуструктурированных данных соответственно.
- Значения NULL:
NULL представляет собой отсутствующее или неизвестное значение и не является типом данных сам по себе. Крайне важно правильно обрабатывать значения NULL в запросах.
- Выбирайте с умом: Учитывайте характер данных, требуемую точность и последствия для хранения при выборе типа данных для столбца.